package main

import (
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
	"log"
)

/*
mongodb 测试
*/
type Person struct {
	Name  string
	Phone string
}

func main() {
	session, err := mgo.Dial("localhost")
	if err != nil {
		// 当调用panic()时，正常的执行流程将停止。defer定义的操作还是会执行，然后一层一层向上返回，直到整个进程终止。
		panic(err)
	}
	defer session.Close()

	// Optional. Switch the session to a monotonic behavior.
	session.SetMode(mgo.Monotonic, true)

	c := session.DB("test").C("people")
	log.Println("###### 数据插入 ###### ")

	err = c.Insert(
		&Person{"Acs", "+55 53 8116 9639"},
		&Person{"DD", "+58 53 8402 8510"},
	)

	if err != nil {
		log.Fatal(err)
	}
	log.Println("###### 查询语句 ###### ")
	// 查询语句
	result := Person{}
	err = c.Find(bson.M{"name": "Acs"}).One(&result)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Phone:", result.Phone)

}
